package com.lhz.framework.security.manager;

import com.lhz.framework.security.HolderUserInfo;


/**
 * token 管理器接口
 */
public interface TokenManager {
    /**
     * 缓存用户token
     *
     * @param tokenInfo
     * @param tokenKey
     * @param username
     * @param userId
     * @return
     */
    void saveUserToken(String tokenKey, String username, String userId, HolderUserInfo tokenInfo);

    /**
     * 删除key
     *
     * @param tokenKey key
     */
    void removeUserToken(String tokenKey);

    /**
     * 检查key是否存在
     *
     * @param key
     * @return
     */
    boolean hasKey(String key);

    /**
     * 刷新用户登录过期时间
     *
     * @param token 用户token信息
     */
    void refreshExpire(String token);


    /**
     * 获取用户的所有登录信息
     *
     * @param tokenKey
     * @param dataKey
     * @return
     */
    Object getUser(String tokenKey, String dataKey);

    /**
     * 通过token获取用户的所有登录信息
     *
     * @param tokenKey
     * @return
     */
    Object getUserInfoByToken(String tokenKey);

}
